4.2. Part 2. Specific Implementation Information

This table contains elements for specific rules from RFC 2445. For each one, please indicate whether the implementation does (Yes) or does not (No) conform to the stated rule. If you have comments, issues or questions about this rule please enter in the Comment line under the rule.

RFC 2445 — iCalendar elements

4.3.10.a Recurrence Rule

○ Yes ○ No ○ Other

MUST

Individual rule parts MUST only be specified once.

4.3.10.b Recurrence Rule

○ Yes ○ No ○ Other

MUST

The FREQ rule part identifies the type of recurrence rule. This rule part MUST be specified in the recurrence rule.

4.3.10.c Recurrence Rule

○ Yes ○ No ○ Other

MUST

If UNTIL is specified as a date-time value, then it MUST be specified in a UTC time format.

4.3.10.d Recurrence Rule

○ Yes ○ No ○ Other

MUST

BYSETPOS MUST only be used in conjunction with another BYxxx rule part.

4.6.1.a Event Component

○ Yes ○ No ○ Other

MUST NOT

The following are optional but MUST NOT occur more than once: class / created / description / dtstart / geo / last-mod / location / organizer / priority / dstamp / seq / status / summary / transp / uid / url / recurid.

4.6.1.b Event Component

○ Yes ○ No ○ Other

MAY

The following are optional and MAY occur more than once: attach / attendee / categories / comment / contact / exdate / exrule / rstatus / related / resources / rdate / rrule / x-pro.

4.6.2.a To-do Component

○ Yes ○ No ○ Other

MUST NOT

The following are optional, but MUST NOT occur more than once: class / completed / created / description / dstamp / dtstart / geo / last-mod / location / organizer / percent / priority / recurid / seq / status / summary / uid / ur.

4.6.2.b To-do Component

○ Yes ○ No ○ Other

MAY

The following are optional, and MAY occur more than once: attach / attendee / categories / comment / contact / exdate / exrule / rstatus / related / resources / rdate / rrule / x-pro.

4.6.3.a Journal Component

○ Yes ○ No ○ Other

MUST NOT

The following are optional, but MUST NOT occur more than once: class / created / description / dtstart / dstamp / last-mod / organizer / recurid / seq / status / summary / uid / url.

4.6.3.b Journal Component

○ Yes ○ No ○ Other

MAY

The following are optional, and MAY occur more than once: attach / attendee / categories / comment / contact / exdate / exrule / related / rdate / rrule / rstatus / x-pro.

4.6.4.a Free/Busy Component

○ Yes ○ No ○ Other

MUST NOT

The recurrence properties (’RRULE’,’EXRULE’,’RDATE’,’EXDATE’) are not permitted within a ‘VFREEBUSY’ calendar component. Any recurring events are resolved into their individual busy time periods using the ‘FREEBUSY’ property.

4.6.5.a Time Zone Component

○ Yes ○ No ○ Other

MUST

The ‘VTIMEZONE’ calendar component MUST be present if the iCalendar object contains an RRULE that generates dates on both sides of a time zone shift.

4.6.5.b Time Zone Component

○ Yes ○ No ○ Other

MAY

A ‘VTIMEZONE’ calendar component MAY be present if the iCalendar object does not contain an RRULE that generates dates on both sides of a time zone shift.

4.6.5.c Time Zone Component

○ Yes ○ No ○ Other

MUST

If an RRULE that generates dates on both sides of a time zone shift is present, there MUST be valid time zone information for all recurrence instances.

4.6.6.a Alarm Component

○ Yes ○ No ○ Other

MUST NOT

‘DURATION’ and ‘REPEAT’ are both optional, and MUST NOT occur more than once each, but if one occurs, so MUST the other.

4.6.6.b Alarm Component

○ Yes ○ No ○ Other

MUST

A definition of an alarm with a repeating trigger MUST include both the ‘DURATION’ and ‘REPEAT’ properties.

4.6.6.c Alarm Component

○ Yes ○ No ○ Other

MUST

Both ‘DURATION’ and ‘REPEAT’ properties MUST be present in order to specify a repeating alarm. If one of these two properties is absent, then the alarm will not repeat beyond the initial trigger.

4.8.4.4.a Recurrence ID

○ Yes ○ No ○ Other

MUST

If the value of the ‘DTSTART’ property is a ‘DATE’ type value, then the value MUST be the calendar date for the recurrence instance.

4.8.4.4.b Recurrence ID

○ Yes ○ No ○ Other

MUST NOT

The following are optional, but MUST NOT occur more than once: “VALUE” “=” (“DATE-TIME” / “DATE”), tzidparam, rangeparam.

4.8.4.4.c Recurrence ID

○ Yes ○ No ○ Other

MAY

The following are optional, and MAY occur more than once: xparam.

4.8.5.1.a Exception Date/Times

○ Yes ○ No ○ Other

MUST

The “EXDATE” property can be used to exclude the value specified in “DTSTART”. However, in such cases the original “DTSTART” date MUST still be maintained by the calendaring and scheduling system because the original “DTSTART” value has inherent usage dependencies by other properties such as the “RECURRENCE-ID”.

4.8.5.1.b Exception Date/Times

○ Yes ○ No ○ Other

MUST NOT

The following are optional, but MUST NOT occur more than once: “VALUE” “=” (“DATE-TIME” / “DATE”), tzidparam.

4.8.5.1.c Exception Date/Times

○ Yes ○ No ○ Other

MAY

The following is optional, and MAY occur more than once: xparam.

4.8.5.3.a Recurrence Date/Times

○ Yes ○ No ○ Other

MUST NOT

The following are optional, but MUST NOT occur more than once: “VALUE” “=” (“DATE-TIME” / “DATE” / “PERIOD”), tzidparam.

4.8.5.3.b Recurrence Date/Times

○ Yes ○ No ○ Other

MAY

The following is optional, and MAY occur more than once: xparam.

4.8.5.4.a Recurrence Rule

○ Yes ○ No ○ Other

MUST

Any duration associated with the iCalendar object applies to all members of the generated recurrence set. Any modified duration for specific recurrences MUST be explicitly specified using the “RDATE” property.

4.8.7.4.a Sequence Number

○ Yes ○ No ○ Other

MUST

When the “Organizer” makes changes to one of the following properties, the sequence number MUST be incremented: “DTSTART”, “DTEND”, “DUE”, “RDATE”, “RRULE”, “EXDATE”, “EXRULE”, “STATUS”.

RFC 2446 — iTIP elements

3.2.4.a VEVENT CANCEL

○ Yes ○ No ○ Other

MUST

To cancel the complete range of a recurring event, the “UID” property value for the event MUST be specified and a “RECURRENCE-ID” MUST NOT be specified in the “CANCEL” method.

3.2.4.b VEVENT CANCEL

○ Yes ○ No ○ Other

MUST

In order to cancel an individual instance of the event, the “RECURRENCE-ID” property value for the event MUST be specified in the “CANCEL” method.

3.2.4.c VEVENT CANCEL

○ Yes ○ No ○ Other

MUST

Cancelling multiple VEVENT instances MUST be done with either “RECURRENCE-ID” and “RANGE” OR multiple “RECURRENCE-ID” values.

3.4.5.a VTODO CANCEL

○ Yes ○ No ○ Other

MUST

To cancel the complete range of a recurring “VTODO” calendar component, the “UID” property value for the “VTODO” calendar component MUST be specified and a “RECURRENCE-ID” MUST NOT be specified in the “CANCEL” method.

3.4.5.b VTODO CANCEL

○ Yes ○ No ○ Other

MUST

In order to cancel an individual instance of a recurring “VTODO” calendar component, the “RECURRENCE-ID” property value for the “VTODO” calendar component MUST be specified in the “CANCEL” method.

3.4.6.a VTODO REFRESH

○ Yes ○ No ○ Other

MUST

A refresh of a recurrence instance of a “VTODO” calendar component may be requested by specifying the “RECURRENCE-ID” property corresponding to the associated “VTODO” calendar component. The “Organizer” responds with the latest description and rendition of the “VTODO” calendar component. In most cases this will be a REQUEST unless the “VTODO” has been cancelled, in which case the ORGANIZER must send a “CANCEL”. This method is intended to facilitate machine processing of requests for updates to a “VTODO” calendar component.

3.5.3.a VJOURNAL CANCEL

○ Yes ○ No ○ Other

MUST

To cancel the complete range of a recurring journal entry, the “UID” property value for the journal entry MUST be specified and a “RECURRENCE-ID” property MUST NOT be specified in the “CANCEL” method.

3.5.3.b VJOURNAL CANCEL

○ Yes ○ No ○ Other

MUST

In order to cancel an individual instance of the journal entry, the “RECURRENCE-ID” property value for the journal entry MUST be specified in the “CANCEL” method.